define(["jquery","bbcare","migrate_jqprint","jqprint","as/app/nbna/nbnaHistoryRecord.servers","as/app/nbna/nbnaHistoryRecord.ui"],
    function ($,$bb,migrate,$print,$servers,$ui) {
    var nbnaHistoryRecord = {};

    /**
     * 打印报告
     */
    var onPrintReport = function(){
        var params = $(this).data("params");
        var $pc = $(params.dom);
        $pc.jqprint({
            debug: false, //如果是true则可以显示iframe查看效果（iframe默认高和宽都很小，可以再源码中调大），默认是false
            importCSS: true, //true表示引进原来的页面的css，默认是true。（如果是true，先会找$("link[media=print]")，若没有会去找$("link")中的css文件）
            printContainer: true, //表示如果原来选择的对象必须被纳入打印（注意：设置为false可能会打破你的CSS规则）。
            operaSupport: true//表示如果插件也必须支持歌opera浏览器，在这种情况下，它提供了建立一个临时的打印选项卡。默认是true
        });
        return;
    };

    /**
     * 请求评估详情成功后的回调函数
     */
    var ajaxRecordDetailCallBack = function(data,params){
        var width = $("#zoneScore").width();
        var result = $servers.handleResult(data,width);
        // 基本信息
        $ui.info({
            "id":"nbnaInfo",
            "info":result
        });
        $ui.info({
            "id":"print-nbnaInfo",
            "info":result
        });
        // 各能区得分
        $ui.result({
            "id":"zoneScore",
            "data":result
        });
        $ui.result({
            "id":"print-zoneScore",
            "data":result
        });
        $("#testTime").html(result.testTime);
    }

    /**
     * 修改指导建议、备注成功后的回调函数
     */
    var ajaxModifyGuidesCallBack = function(data,params){
        $servers.ajaxGuide(params,ajaxGuideCallBack);
    }

    /**
     * 点击修改指导建议、备注
     */
    var onModify = function(){
        var type = $(this).attr("type");
        var data = $(this).data("data");
        if( type == "modify" ){
            $(this).attr("type","save").html('<i class="fa fa-check-square" aria-hidden="true"></i>确认修改');
            $(this).parent().next().attr("contentEditable",true).addClass("edit");
            if( $(this).parent().next().html() == "暂无" + data.name ) $(this).parent().next().html("");
        }else if( type == "save" ){
            $(this).attr("type","modify").html('<i class="fa fa-pencil-square-o" aria-hidden="true"></i>修改' + data.name);
            $(this).parent().next().removeAttr("contentEditable").removeClass("edit");
            var guide = $.trim($("#nbnaGuide .con").html());
            var remark = $.trim($("#nbnaRemark .con").html());
            if( !remark ) $("#remark").html("暂无备注");
            if( !guide ) $("#guide").html("暂无指导建议");
            $.extend(data.params,{"guide":guide,"remark":remark});
            $servers.ajaxModifyGuides(data.params,ajaxModifyGuidesCallBack);
        }
    }

    /**
     * 请求指导意见成功后的回调函数
     */
    var ajaxGuideCallBack = function(data,params){
        var handleData = $servers.handleGuide(data);
        $ui.guide({
            "id":"nbnaBox",
            "data":handleData,
        });
        $("#print-guide").html(handleData.guide);
        // 修改
        $("#nbnaGuide .modify").unbind("click");
        $("#nbnaGuide .modify").data("data",{"name":"指导建议","params":params});
        $("#nbnaGuide .modify").click(onModify);
        $("#nbnaRemark .modify").unbind("click");
        $("#nbnaRemark .modify").data("data",{"name":"备注","params":params});
        $("#nbnaRemark .modify").click(onModify);
        if( $(".nbnaHistoryRecord-wrap").parents(".assess-wrap").length == 0 ){
            // 打印
            var topbars = [
                {
                    "icon":"fa fa-print",
                    "name":"打印报告",
                    "callback":onPrintReport,
                    "params":{"dom":"#printContent"}
                }
            ];
            $bb.toolbar(topbars);
        }
    }

    /**
     * 选择记录
     */
    var onRecordSelect = function(){
        $(this).addClass("active").siblings().removeClass("active");
        var data = $(this).data("data");
        var index = $(this).index();
        var currData = data.list[index];
        $servers.ajaxRecordDetail(currData,ajaxRecordDetailCallBack);
        $servers.ajaxGuide(currData,ajaxGuideCallBack);
    }

    /**
     * 查询用户评估信息成功后的回调函数
     */
    var ajaxRecordlistCallBack = function(data,params){
        var list = $servers.handleHistoryData(data.rows);
        $ui.historyList({
            "id":"nbnaHistory",
            "list":data.rows,
        });
        $("#nbnaHistory li").unbind("click");
        $("#nbnaHistory li").data("data",{"list":list});
        $("#nbnaHistory li").click(onRecordSelect);
        var index = $servers.getRecordIndex(list,params);
        $("#nbnaHistory li").eq(index).click();
    }

    nbnaHistoryRecord.init = function(){
        var params = $bb.getPageParams();
        if( $(".nbnaHistoryRecord-wrap").parents(".assess-wrap").length > 0 ){
            $("#nbnaHistoryRecordList").hide();
            $(".nbnaHistoryRecord-wrap > div:nth-child(1)").css({"width":"100%"});
        }
        $servers.ajaxRecordlist(params,ajaxRecordlistCallBack);
    }

    return nbnaHistoryRecord;
});